package com.cskaoyan.javase.array._4exception._3length0;

/**
 * 问题：
 * 数组长度为0和数组是null以及数组未初始化，有啥区别？
 * 长度为0和为null的数组可以认为经过了初始化，至少是可以用的。（虽然可用，但是出错概况很大）
 *
 * 对于长度为0的数组，数组对象的结构是存在的，只不过没有存储单元，无法存储元素
 * 而为null的数组，根据就没有对象结构。
 *
 *
 * @since 10:57
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int[] arr = new int[0];
        int[] arr2 = null;
        int[] arr3;
        System.out.println(arr);
        System.out.println(arr2);
        // Variable 'arr3' might not have been initialized
        // System.out.println(arr3);
        /*
            数组下标越界的前提是得有一个对象
            如果对象都没有，谈何越界？
            这里会产生空指针异常
         */
        System.out.println(arr2[0]);
    }
}
